package com.yami.shop.vo.message.message;

import com.yami.shop.vo.advice.AdvicePutExtVo;
import com.yami.shop.vo.advice.AdviceTxtVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class DiscussionMessageVo implements Serializable {

    @NotEmpty(message = "发送人id不能为空")
    @Schema(description = "发送人id", required = true)
    private String senderId;
    @NotEmpty(message = "接收方不能为空")
    @Schema(description = "接收方id", required = true)
    private List<String> targetId;
    @NotEmpty(message = "消息类型不能为空")
    @Schema(description = "消息类型", required = true)
    private String objectName;
    @Schema(description = "消息内容")
    private AdviceTxtVo content;
    @Schema(description = "push内容")
    private String pushContent;
    @Schema(description = "iOS 平台为 Push 通知时附加到 payload 中，Android 客户端收到推送消息时对应字段名为 pushData {'pushData':'hello'}")
    private String pushData;
    @Schema(description = "参数支持设置消息推送通知的标题、推送内容模板、是否强制通知及推送 ChannelID 等。pushExt 为 JSON 结构请求时需要做转义处理")
    private AdvicePutExtVo advicePutExtVo;
    @Schema(description = "是否在融云服务器存储, 0: 不存储, 1: 存储, 默认: 1")
    private Integer isPersisted;
    @Schema(description = "仅目标用户为 iOS 设备时有效，应用处于后台暂停状态时为静默推送，是 iOS7 之后推出的一种推送方式。允许应用在收到通知后在后台运行一段代码，且能够马上执行。详情请查看知识库文档。1 表示为开启，0 表示为关闭，默认为 0。")
    private Integer contentAvailable;
    @Schema(description = "终端用户在线状态下，发送用户自己是否接收消息，0 表示为不接收，1 表示为接收，默认为 0 不接收")
    public Integer isIncludeSender;
    @Schema(description = "是否计数")
    private Integer  isCounted;
}
